package com.zjdiepu.www.model.base.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.GroupSequence;

import org.hibernate.validator.constraints.NotBlank;

import com.zjdiepu.www.base.annotation.Add;
import com.zjdiepu.www.base.annotation.Id;
import com.zjdiepu.www.base.annotation.Update;
import com.zjdiepu.www.base.core.BaseModel;

/**
 * 附件信息<br/>
 * @author xiongxiaotun<br/>
 * @time 2017年05月08日 15时15分<br/>
 * @since 1.0<br/>
 */
@ApiModel(value="OtherAttachments", description="附件信息", parent = BaseModel.class)
@GroupSequence({Id.class, Add.class, Update.class, OtherAttachments.class})
public class OtherAttachments extends BaseModel {
	
	private static final long serialVersionUID = 1L;
	/**
	 * 模块标识
	 */
	@ApiModelProperty(name="modeId",required=false,value="模块标识",example="模块标识")
	@NotBlank(message="模块ID{message.null}",groups={Add.class})
	private String modeId;
	
	/**
	 * 关联数据
	 */
	@ApiModelProperty(name="dataid",required=false,value="关联数据",example="关联数据")
	@NotBlank(message="附件依附数据ID{message.null}",groups={Add.class})
	private String dataid;
	
	/**
	 * 字表数据标识
	 */
	@ApiModelProperty(name="subDataid",required=false,value="字表数据标识",example="字表数据标识")
	private String subDataid;
	
	/**
	 * 客户标识
	 */
	@ApiModelProperty(name="customerId",required=false,value="客户标识",example="客户标识")
	private String customerId;
	
	/**
	 * 客户端类型
	 *  pc IOS Android
	 */
	@ApiModelProperty(name="clientType",required=false,value="客户端类型",example="客户端类型")
	private String clientType;
	
	/**
	 * 附件类别
	 */
	@ApiModelProperty(name="attachmentSort",required=false,value="附件类别",example="附件类别")
	@NotBlank(message="附件类别{message.null}",groups={Add.class})
	private String attachmentSort;
	
	/**
	 * 附件类型
	 */
	@ApiModelProperty(name="attachmentType",required=false,value="附件类型",example="附件类型")
	@NotBlank(message="附件类型{message.null}",groups={Add.class})
	private String attachmentType;
	
	/**
	 * 标签
	 */
	@ApiModelProperty(name="fileLabel",required=false,value="标签名称",example="标签名称")
	@NotBlank(message="标签{message.null}",groups={Add.class})
	private String fileLabel;
	
	/**
	 * 自定义标签
	 */
	@ApiModelProperty(name="customLabelName",required=false,value="自定义标签",example="自定义标签")
	private String customLabelName;
	
	/**
	 * 文件名称
	 */
	@ApiModelProperty(name="fileName",required=false,value="文件名称",example="文件名称")
	@NotBlank(message="文件名称{message.null}",groups={Add.class})
	private String fileName;
	
	/**
	 * 显示名称
	 */
	@ApiModelProperty(name="fileShowName",required=false,value="显示名称",example="显示名称")
	@NotBlank(message="显示名称{message.null}",groups={Add.class})
	private String fileShowName;
	
	/**
	 * 文件大小
	 */
	@ApiModelProperty(name="fileSize",required=false,value="文件大小",example="0",hidden=true)
	private Integer fileSize;
	
	/**
	 * 本地文件路径
	 */
	@ApiModelProperty(name="localFilePath",required=false,value="本地文件路径",example="本地文件路径",hidden=true)
	private String localFilePath;
	
	/**
	 * OSS路径
	 */
	@ApiModelProperty(name="ossPath",required=false,value="OSS路径",example="OSS路径")
	@NotBlank(message="OSS路径{message.null}",groups={Add.class})
	private String ossPath;
	
	/**
	 * 备份服务器类型
	 */
	@ApiModelProperty(name="bakServerType",required=false,value="备份服务器类型",example="备份服务器类型",hidden=true)
	private String bakServerType;
	
	/**
	 * 备份服务器名称
	 */
	@ApiModelProperty(name="bakServerName",required=false,value="备份服务器名称",example="备份服务器名称",hidden=true)
	private String bakServerName;
	
	/**
	 * 备份地址
	 */
	@ApiModelProperty(name="bakAddr",required=false,value="备份地址",example="备份地址",hidden=true)
	private String bakAddr;
	
	/**
	 * 文件状态 1.未处理 2.已压缩 3.已上传 4.已备份
	 */
	@ApiModelProperty(name="fileHandleStatus",required=false,value="文件状态 1.未处理 2.已压缩 3.已上传 4.已备份",example="文件状态 1.未处理 2.已压缩 3.已上传 4.已备份",hidden=true)
	private String fileHandleStatus;
	
	/**
	 * 缩略图
	 */
	@ApiModelProperty(name="url",required=false,value="缩略图",example="缩略图",hidden=true)
	private String url;
	
	/**
	 * 原图
	 */
	@ApiModelProperty(name="bigUrl",required=false,value="原图",example="原图",hidden=true)
	private String bigUrl;
	
//	====================================辅助字段============
	/**
	 * 客户端类型
	 *  pc IOS Android
	 */
	@ApiModelProperty(name="clientTypeDisplay",required=false,value="客户端类型",example="客户端类型")
	private String clientTypeDisplay;
	
	public String getModeId(){
		return this.modeId;
	}
	
	public void setModeId(String modeId){
		this.modeId = modeId;
	}

	public String getDataid(){
		return this.dataid;
	}
	
	public void setDataid(String dataid){
		this.dataid = dataid;
	}

	public String getSubDataid(){
		return this.subDataid;
	}
	
	public void setSubDataid(String subDataid){
		this.subDataid = subDataid;
	}

	public String getCustomerId(){
		return this.customerId;
	}
	
	public void setCustomerId(String customerId){
		this.customerId = customerId;
	}
	
	public String getClientType() {
		return clientType;
	}

	public void setClientType(String clientType) {
		this.clientType = clientType;
	}

	public String getAttachmentSort(){
		return this.attachmentSort;
	}
	
	public void setAttachmentSort(String attachmentSort){
		this.attachmentSort = attachmentSort;
	}

	public String getAttachmentType(){
		return this.attachmentType;
	}
	
	public void setAttachmentType(String attachmentType){
		this.attachmentType = attachmentType;
	}

	public String getFileLabel(){
		return this.fileLabel;
	}
	
	public void setFileLabel(String fileLabel){
		this.fileLabel = fileLabel;
	}

	public String getCustomLabelName(){
		return this.customLabelName;
	}
	
	public void setCustomLabelName(String customLabelName){
		this.customLabelName = customLabelName;
	}

	public String getFileName(){
		return this.fileName;
	}
	
	public void setFileName(String fileName){
		this.fileName = fileName;
	}

	public String getFileShowName(){
		return this.fileShowName;
	}
	
	public void setFileShowName(String fileShowName){
		this.fileShowName = fileShowName;
	}

	public Integer getFileSize(){
		return this.fileSize;
	}
	
	public void setFileSize(Integer fileSize){
		this.fileSize = fileSize;
	}

	public String getLocalFilePath(){
		return this.localFilePath;
	}
	
	public void setLocalFilePath(String localFilePath){
		this.localFilePath = localFilePath;
	}

	public String getOssPath(){
		return this.ossPath;
	}
	
	public void setOssPath(String ossPath){
		this.ossPath = ossPath;
	}

	public String getBakServerType(){
		return this.bakServerType;
	}
	
	public void setBakServerType(String bakServerType){
		this.bakServerType = bakServerType;
	}

	public String getBakServerName(){
		return this.bakServerName;
	}
	
	public void setBakServerName(String bakServerName){
		this.bakServerName = bakServerName;
	}

	public String getBakAddr(){
		return this.bakAddr;
	}
	
	public void setBakAddr(String bakAddr){
		this.bakAddr = bakAddr;
	}

	public String getFileHandleStatus(){
		return this.fileHandleStatus;
	}
	
	public void setFileHandleStatus(String fileHandleStatus){
		this.fileHandleStatus = fileHandleStatus;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public String getBigUrl() {
		return bigUrl;
	}

	public void setBigUrl(String bigUrl) {
		this.bigUrl = bigUrl;
	}
	
	public String getClientTypeDisplay() {
		return clientTypeDisplay;
	}

	public void setClientTypeDisplay(String clientTypeDisplay) {
		this.clientTypeDisplay = clientTypeDisplay;
	}

	@Override
	public String toString() {
		return super.toString() + "OtherAttachments [modeId = " + modeId + ", dataid = " + dataid + ", subDataid = " + subDataid + ", customerId = " + customerId + ", attachmentSort = " + attachmentSort + ", "
			+ "attachmentType = " + attachmentType + ", fileLabel = " + fileLabel + ", customLabelName = " + customLabelName + ", fileName = " + fileName + ", fileShowName = " + fileShowName + ", "
			+ "fileSize = " + fileSize + ", localFilePath = " + localFilePath + ", ossPath = " + ossPath + ", bakServerType = " + bakServerType + ", bakServerName = " + bakServerName + ", "
			+ "bakAddr = " + bakAddr + ", fileHandleStatus = " + fileHandleStatus + "]";
	}
    
}